package it.clem.little.domain.terreno;

/**
 * 1,1 è l'angolo in alto a sx 30,6 è l'angolo in basso a dx
 * 
 */
public class Posizione {
  public static final int START_ROW = 1;
  public static final int END_ROW = 6;
  public static final int START_COL = 1;
  public static final int END_COL = 30;
  private int col;// da 1 a 30
  private final int row;// da 1 a 6

  public Posizione(int row, int col) {
    super();
    this.row = row;
    this.col = col;
    if (row < START_ROW || row > END_ROW)
      throw new IllegalArgumentException("row:" + row);
    if (col < START_COL || row > END_COL)
      throw new IllegalArgumentException("col:" + col);
  }

  public void avanza(int quantita,boolean amica) {
    if (amica) {
      col= Math.min(col+quantita , END_COL);
    } else {
      col= Math.max(col-quantita , START_COL);
    }
  }

  public int getCol() {
    return col;
  }

  public void setCol(int col) {
    this.col = col;
  }

  public int getRow() {
    return row;
  }

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + col;
    result = prime * result + row;
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    Posizione other = (Posizione) obj;
    if (col != other.col)
      return false;
    if (row != other.row)
      return false;
    return true;
  }

}
